<HTML>
<HEAD>
<!-- Created by texi2html 1.56k from /home/jaffer/scheme/r5rs.txi on 28 March 2001 -->

<TITLE>Revised(5) Scheme - Notes</TITLE>
</HEAD>
<BODY>
Go to the <A HREF="r5rs_1.html">first</A>, <A HREF="r5rs_9.html">previous</A>, <A HREF="r5rs_11.html">next</A>, <A HREF="r5rs_14.html">last</A> section, <A HREF="r5rs_toc.html">table of contents</A>.
<P><HR><P>


<H1><A NAME="SEC81" HREF="r5rs_toc.html#TOC81">Notes</A></H1>

<P>
<A NAME="IDX493"></A>




<H2><A NAME="SEC82" HREF="r5rs_toc.html#TOC82">Language changes</A></H2>

<P>
<A NAME="IDX494"></A>


<P>
This section enumerates the changes that have been made to Scheme since
the "Revised^4 report" <A HREF="r5rs_13.html#BIB6">[R4RS]</A> was published.



<UL>

<LI>

The report is now a superset of the IEEE standard for Scheme
<A HREF="r5rs_13.html#BIB13">[IEEEScheme]</A>: implementations that conform to the report will
also conform to the standard.  This required the following changes:


<UL>

<LI>

The empty list is now required to count as true.

<LI>

The classification of features as essential or inessential has been
removed.  There are now three classes of built-in procedures: primitive,
library, and optional.  The optional procedures are <SAMP>`load'</SAMP>,
<SAMP>`with-input-from-file'</SAMP>, <SAMP>`with-output-to-file'</SAMP>,
<SAMP>`transcript-on'</SAMP>, <SAMP>`transcript-off'</SAMP>, and
<SAMP>`interaction-environment'</SAMP>,
and <SAMP>`-'</SAMP> and <SAMP>`/'</SAMP> with more than two arguments.
None of these are in the IEEE standard.

<LI>

Programs are allowed to redefine built-in procedures.  Doing so
will not change the behavior of other built-in procedures.

</UL>

<LI>

<EM>Port</EM> has been added to the list of disjoint types.

<LI>

The macro appendix has been removed.  High-level macros are now part
of the main body of the report.  The rewrite rules for derived expressions
have been replaced with macro definitions.  There are no reserved identifiers.

<LI>

<SAMP>`Syntax-rules'</SAMP> now allows vector patterns.

<LI>

Multiple-value returns, <SAMP>`eval'</SAMP>, and <SAMP>`dynamic-wind'</SAMP> have
been added.

<LI>

The calls that are required to be implemented in a properly tail-recursive
fashion are defined explicitly.

<LI>

`<SAMP>`@'</SAMP>' can be used within identifiers. `<SAMP>`|'</SAMP>' is reserved
for possible future extensions.

</UL>

<P>
       
<P><HR><P>
Go to the <A HREF="r5rs_1.html">first</A>, <A HREF="r5rs_9.html">previous</A>, <A HREF="r5rs_11.html">next</A>, <A HREF="r5rs_14.html">last</A> section, <A HREF="r5rs_toc.html">table of contents</A>.
</BODY>
</HTML>
